﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceModel.Channels;
using System.ComponentModel;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.DebitoWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class EstabelecimentoDebitarBebidaClientePasso2 : System.Web.UI.Page
    {
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();
        Utilizadades_WS webServiceUtilidades = new Utilizadades_WS();

        ObjetoCliente cliente = new ObjetoCliente();
        ObjetoEstabelecimento estabelecimento = new ObjetoEstabelecimento();
        ObjetoBebidaEstabelecimento[] listaBebidasPorEstabelecimento;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Estabelecimento"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(Convert.ToInt32(Session["Estabelecimento"]));
            }

            if (Request.QueryString["ClienteId"] != null)
            {
                int idCliente = Convert.ToInt32(Request.QueryString["ClienteId"]);
                cliente = webServiceCliente.GetCliente(idCliente);
            }

            BindingList<ObjetoBebida> listaBebiba = new BindingList<ObjetoBebida>(webServiceUtilidades.SearchBebidas(""));
            listaBebidasPorEstabelecimento = webServiceUtilidades.ListaBebidaCatalogoByEstabelecimento(estabelecimento.EstabelecimentoId);

            if (!Page.IsPostBack)
            {

                foreach (var item in listaBebidasPorEstabelecimento)
                {
                    ObjetoBebida bebida = webServiceUtilidades.GetBebidaById(item.BebidaId);
                    ListItem li = new ListItem();
                    li.Text = bebida.Descricao;
                    li.Value = item.Id.ToString();
                    DropDownListBebidas.Items.Add(li);
                }

            }

            LabelNomeCliente.Text = cliente.Nome.ToUpper();
            LabelNomeCliente.ForeColor = System.Drawing.Color.Blue;

            HyperLinkVoltar.NavigateUrl = "~/GUI/EstabelecimentoDebitarBebidaCliente.aspx";
            HyperLinkProximo.NavigateUrl = "~/GUI/EstabelecimentoDebitarBebidaClientePasso3.aspx?ClienteId=" + cliente.ClienteId;
        }

        

        protected void ButtonAdicionarBebidaDose_Click(object sender, EventArgs e)
        {
            if (TextBoxQtdeDoses.Text.Trim().Equals(""))
            {
                LabelAviso.Text = "Quantidade não pode ser vazio";
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Visible = true;
                TextBoxQtdeDoses.Focus();
                HyperLinkProximo.Visible = false;
                return;
            }
            else
            {
                try
                {
                    Convert.ToInt32(TextBoxQtdeDoses.Text.Trim());

                }
                catch (FormatException)
                {

                    LabelAviso.Text = "Informe apenas números.";
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Visible = true;
                    TextBoxQtdeDoses.Focus();
                    HyperLinkProximo.Visible = false;
                    return;
                }

                if (Convert.ToInt32(TextBoxQtdeDoses.Text.Trim()) <= 0)
                {
                    LabelAviso.Text = "Quantidade de doses não pode ser menor ou igual a zero.";
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Visible = true;
                    TextBoxQtdeDoses.Focus();
                    HyperLinkProximo.Visible = false;
                    return;
                }
                else
                {
                    LabelAviso.Visible = false;

                    String[] listaCarrinho;
                    string carrinho;
                    bool jaExiste = false;


                    int idBebida = Convert.ToInt32(DropDownListBebidas.SelectedValue.ToString());
                    int qtde = Convert.ToInt32(TextBoxQtdeDoses.Text.Trim());
                    int novaQtd = 0;


                    carrinho = Session["carrinho"].ToString();

                    listaCarrinho = carrinho.Split(',');

                    if (listaCarrinho.Count() == 0)
                    {
                        Session["carrinho"] += idBebida + "-" + qtde + ",";
                    }
                    else
                    {

                        for (int i = 0; i < listaCarrinho.Count() - 1; i++)
                        {
                            if (listaCarrinho[i].Substring(0, listaCarrinho[i].IndexOf("-")).Equals(idBebida.ToString()))
                            {
                                novaQtd = Convert.ToInt32(listaCarrinho[i].Substring(listaCarrinho[i].IndexOf("-") + 1, (listaCarrinho[i].Length - 1) - listaCarrinho[i].IndexOf("-")));
                                listaCarrinho[i] = idBebida + "-" + (novaQtd + Convert.ToInt32(qtde)).ToString();
                                jaExiste = true;
                            }
                        }



                        if (jaExiste == true)
                        {
                            Session["carrinho"] = "";
                            for (int i = 0; i < listaCarrinho.Count() - 1; i++)
                            {
                                Session["carrinho"] = Session["carrinho"] + listaCarrinho[i].ToString() + ",";
                            }

                        }
                        else
                        {
                            Session["carrinho"] += idBebida + "-" + qtde + ",";
                        }
                    }

                    LabelAviso.Text = "Pedido incluido com sucesso!";
                    LabelAviso.ForeColor = System.Drawing.Color.Green;
                    LabelAviso.Visible = true;
                    TextBoxQtdeDoses.Focus();
                    HyperLinkProximo.Visible = true;
                }
            }

        }
    }
}